home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / bf_copy-bdb < prev    next >
Text File  |  2009-06-05  |  1KB  |  62 lines

  1. #! /bin/sh
  2.  
  3. #  bf_copy [-c] source_dir dest_dir
  4. #
  5. #    use to copy wordlist.db and related files
  6. #    from one directory to another
  7.  
  8. # $Id: bf_copy.in 6750 2008-10-15 23:18:45Z clint $
  9.  
  10. set -e # die on errors
  11.  
  12. : ${BOGOUTIL:=bogoutil}
  13.  
  14. COMPACT=0
  15. while test "$1" ; do
  16.     case "$1" in
  17.     -c) COMPACT=1 ;;
  18.     --) shift ; break ;;
  19.     -*) echo "unknown option $1" >&2 ; exit 1 ;;
  20.     *) break;
  21.     esac
  22.     shift
  23. done
  24.  
  25. if [ $# -ne 2 ] ; then
  26.     echo 'usage: bf_copy [-c] source_dir dest_dir'
  27.     echo "   use -c to copy active logs, not all"
  28.     exit 1
  29. fi
  30.  
  31. SRC="$1"
  32. DST="$2"
  33.  
  34. # flush mempools
  35. $BOGOUTIL --db-checkpoint="$SRC" || :
  36.  
  37. mkdir "$DST"
  38.  
  39. TMP=bfc.$$.unneeded
  40. rm -f $TMP
  41. trap "rm -rf $TMP \"$DST\"" 0
  42. if test $COMPACT -eq 1 ; then
  43.   # don't copy unneeded logs
  44.   $BOGOUTIL --db-list-logfiles="$SRC" >$TMP
  45. else
  46.   : >$TMP
  47. fi
  48.  
  49. # XXX FIXME - use Berkeley DB environment probing here
  50. LOGS=`ls "$SRC"/log.* 2>/dev/null | grep -v -F -f $TMP || :`
  51. if test "$LOGS" ; then cp -p $LOGS "$DST" ; fi
  52. if test -f "$SRC"/DB_CONFIG ; then cp -p "$SRC"/DB_CONFIG "$DST" ; fi
  53.  
  54. for FILE in "$SRC"/*.db ; do
  55.     SIZE=`$BOGOUTIL --db-print-pagesize="$FILE"`
  56.     dd bs=$SIZE if=$FILE of="$DST/"`basename "$FILE"`
  57. done
  58.  
  59. if test "$LOGS" ; then $BOGOUTIL --db-recover="$DST" ; fi
  60. rm -f $TMP
  61. trap - 0
  62.